perm filename MSPACE[T,LCS] blob sn#010318 filedate 1972-10-16 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	ARRAY F1,F2,F3,F4(512)
C00004 ENDMK
C⊗;
ARRAY F1,F2,F3,F4(512);
VARIABLE ARRCON;

VARIABLE /S,/T,/U,/V,/W,/X,/Y;

FUNCTION MSPACE(S,X,Y);
  BEGIN VARIABLE T,U,V,W;
    T←S/4;
    U←X+Y;
    V←X-Y;
    W←X*Y;
    OUTA←OUTA+T*(1+U+W);
    OUTB←OUTB+T*(1-V-W);
    OUTC←OUTC+T*(1-U+W);
    OUTD←OUTD+T*(1+V-W);
    END;

INSTRUMENT GOO;
  MSPACE(OSCIL(OSCIL(P3,MAG/P2,F1),
	       P4*MAG,
	       F2),
         OSCIL(1,MAG*P5,F3),
	 OSCIL(1,MAG*P6,F4));
  END;

INSTRUMENT GOO2;
  OSCIL(P3,MAG/P2,F1);
  OSCIL(U1,P4*MAG,F2);
  OUTA←OUTA+U2;
  END;

INSTRUMENT GOO3;
  OSCIL(OSCIL(P3,MAG/P2,F1),P4*MAG,F2);
  OSCIL(1,MAG*P5,F3);
  OSCIL(1,MAG*P5,F4);
  MSPACE(U2,U3,U4);
  END;

INSTRUMENT GOO4;
  VARIABLE /S,/T,/U,/V,/W,/X,/Y;
  OSCIL(OSCIL(P3,MAG/P2,F1),P4*MAG,F2);
  OSCIL(1,MAG*P5,F3);
  OSCIL(1,MAG*P5,F4);
  S←U2; X←U3; Y←U4;
  T←S/4;
  U←X+Y;
  V←X-Y;
  W←X*Y;
  OUTA←OUTA+T*(1+U+W);
  OUTB←OUTB+T*(1-V-W);
  OUTC←OUTC+T*(1-U+W);
  OUTD←OUTD+T*(1+V-W);
  END;

ARRCON←PI/256;

FOR I←0 STEP 1 UNTIL 511 DO BEGIN;
  F1(I)←EXP(-I/250);
  F2(I)←SIN(ARRCON*I);
  F3(I)←COS(ARRCON*I);
  F4(I)←SIN(ARRCON*I);
  END;

NCHNS←4;
SPEED←4;
MAG←512/(SRATE←50000/4);